//对象
//对象的引用
// 当一个变量是一个对象时，实际上变量中保存的并不是对象本身，而是对象的引用。
var person = new Object();
person.name = "孙悟空";
person.age = 18;
console.log(person);
var people = person;
people.name = '人民'
console.log(person,people);//显示一样 两个变量指向的是同一个对象。因此，改变其中一个变量会影响另一个。
//对象属性的删除
// delete person.name
// console.log(person);
//对象遍历
// for (var personKey in person) {
//     var personVal = person[personKey];
//     console.log(personKey + ":" + personVal);
// }
//对象的创建 进阶
// // 1.使用工厂模式创建对象
// function createPerson(name, age) {
//     // 创建新的对象
//     var obj = new Object();
//     // 设置对象属性
//     obj.name = name;
//     obj.age = age;
//     // 设置对象方法
//     obj.sayName = function () {
//         console.log(this.name);
//     };
//     //返回新的对象
//     return obj;
// }
// var person1 = createPerson("孙悟空", 18);  //每次赋值都创建了一个新的对象
// var person2 = createPerson("猪八戒", 19);
// var person3 = createPerson("沙和尚", 20);
// console.log(person1,person2,person3);

// for (var i = 1; i <= 10; i++) {
//     var person = createPerson("person" + i, 18);
//     console.log(person);
// }
// //2.使用构造函数来创建对象
// function Person(name, age) {
//     // 设置对象的属性
//     this.name = name;
//     this.age = age;
//     // 设置对象的方法
//     this.sayName = function () {
//         console.log(this.name);
//     };
// }

// var person1 = new Person("孙悟空", 18);
// var person2 = new Person("猪八戒", 19);
// var person3 = new Person("沙和尚", 20);

// console.log(person1);
// console.log(person2);
// console.log(person3);
